home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games: 500 MB Amiga Software
/
500 MB Amiga Software - Euber 130 - Amiga Games Disc & Mag.iso
/
spiele
/
publicdomain
/
bierschen
/
bierschen.asc
< prev
next >
Wrap
Text File
|
1995-11-23
|
19KB
|
668 lines
'--------------------------------------
'BIERSCHEN V1.0a
'
'Released ®25/08/93 by Volker Stepprath
'Copyright BIERSCHEN ©1993 by Testaware
'--------------------------------------
'
Close Workbench
Request Off
Break Off
Amos Lock
'
Dim XALIEN$(15),XEXPLOSION$(15),XHIGH(9),XHIGH$(9)
'
Global HA$,XHIGH(),XHIGH$(),XHIGHOK
Global XALIENANZ,XEXPLOSION$,XALIEN$(),XEXPLOSION$()
Global XSHIPS,XLEVEL,XPOINTS,XLASERANZ,XLOST,XTREFFER
Global XTSHOOTS,XTHITS,XTLOST,XTTIME,XTTALENT#
'
Fix(2)
'
Unpack 16 To 0
Screen Hide 0
Hide On
'
_INTRO
_GETHERO
'
Do
_MAIN
_GAME
Loop
'
Procedure _INTRO
If Exist(".bierschenhigh")
On Error Proc _FEHLER
Resume Label _BEERS
Open In 1,".bierschenhigh"
For I=0 To 9
Input #1,XHIGH$(I)
Input #1,XHIGH(I)
Next I
Close 1
Wait 50
Else
_BEERS:
For I=0 To 9
Read XHIGH$(I)
XHIGH(I)=11000-(I*1000+1000)
Next I
End If
Wait 100
'
If Length(3) Then Music 1
'
Unpack 14 To 2
Fade 2,,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF : Wait 30
Fade 2,,$600,$800,$A20,$A40,$C60,$C80,$EC0 : Wait 200
Fade 2,,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF : Wait 30
Fade 2 : Wait 60
'
Screen Open 2,320,256,4,Lowres
Cls 0 : Wait 10
_TC["PRESENTS",130,105,2,0] : Wait 150 : Flash Off : Fade 1 : Wait 15 : Cls 0
'
_TC["A GAME WRITTEN IN AMOS",72,105,2,0] : Wait 150 : Flash Off : Fade 1 : Wait 15 : Cls 0
'
Screen Copy 0,0,130,236,178 To 2,43,90
Fade 1,,$FFF,$F : Wait 250
Fade 1 : Wait 15 : Cls 0
'
_TC["TESTING",132,20,2,1] : _TC["KARSTEN BLANK",108,30,2,1]
_TC["SOUND",140,50,2,1] : _TC["THE DEZECRATOR",104,60,2,1] : _TC["VOLKER STEPPRATH",98,70,2,1]
_TC["GRAPHICS",128,90,2,1] : _TC["DAVID MCLACHLAN",100,100,2,1] : _TC["VOLKER STEPPRATH",98,110,2,1]
_TC["PROGRAMMING",116,130,2,1] : _TC["VOLKER STEPPRATH",98,140,2,1]
_TC["AMOS/ACMP",124,160,2,1] : _TC["FRANCOIS LIONET",102,170,2,1] : _TC["EUROPRESS SOFTWARE",90,180,2,1]
_TC["BIERSCHEN ©1993 BY TESTAWARE",48,220,2,0]
_WAIT
'
_TC["WIR SCHREIBEN DAS JAHR 2294.",20,30,2,1]
_TC["DAS BIER IST AEUSSERST KNAPP!",20,40,2,1]
_TC["DU BIST EINER DER LETZTEN HOPFEN",20,50,2,1]
_TC["UND MALZ ANBAUER DER GALAXIS!",20,60,2,1]
_TC["KURZ VOR DER REICHEN ERNTE WOLLEN",20,80,2,1]
_TC["ALKOHOLABHAENGIGE ALIENS DEINE",20,90,2,1]
_TC["WERTVOLLEN PLANTAGEN AUSPLUENDERN.",20,100,2,1]
_TC["DIR BLEIBT KEINE WAHL...",20,120,2,1]
_TC["...DENN ES GEHT UM LECKERES BIER!",20,130,2,1]
_TC["PROST",200,160,2,1]
_TC["(MAN... DIE STORY GEHT INS BLUT)",20,190,2,0]
_WAIT
'
Data "GUINESS","KILKKENNY","CORONA","SOL","HANSAEXPORT"
Data "FRUEHKOELSCH","PAULANA","ERDINGER","FAXE","ELEPHANT"
End Proc
Procedure _MAIN
Screen Open 2,320,256,4,Lowres : Cls 0
XTSHOOTS=0
XTHITS=0
XTLOST=0
XTTIME=0
XTTALENT#=0
'
XSHIPS=9
XLEVEL=0
XPOINTS=0
'
_TC["LINKS ENDE / RECHTS START",60,100,2,0]
'
Do
If Joy(1)=8
Flash Off : Fade 1
_MUSICOFF
Cls 0 : Exit
End If
'
If Joy(1)=4
If XHIGHOK
On Error Proc _FEHLER
Resume Label _END
Open Out 1,".bierschenhigh"
For I=0 To 9
Print #1,XHIGH$(I)
Print #1,XHIGH(I)
Next I
Close 1
End If
_END: Flash Off : Fade 1
_MUSICOFF
Request On
Wait 100
End
End If
Loop
End Proc
Procedure _FEHLER
Resume Label
End Proc
Procedure _GAME
'
Screen Open 3,320,8,2,Lowres
Flash Off
Curs Off
Colour 1,$0
Cls 0
'
_SCREEN
'
_GOONULF:
'* Landscape
'* --------------------------------------------------
Unpack 15 To 1
For I=0 To 7 : Colour I,$0 : Next I
'
Inc XLEVEL
XTREFFER=0 : XLASERANZ=0 : XLOST=0 : XTREFFERMAX=60
'
If XSHIPS>9 Then A$="" Else A$="0"
If XLEVEL>9 Then B$="" Else B$="0"
C$=" 0000000"
Mid$(C$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
_TX["SHIPS:"+A$+Str$(XSHIPS)-" "+" LEVEL:"+B$+Str$(XLEVEL)-" "+" POINTS:"+C$-" ",0,0,3]
Screen 1 : Fade 1,,$117,$4,$BDF,$9BF,$78F,$55F,$238 : Wait 15
Screen 3 : Fade 1,,$4F : Wait 15
'
Screen 2
Randomize Timer
For I=0 To 20
Plot Rnd(330),Rnd(155)+10,15
Next I
Fade 1,,,,,,,,,,,,,,,,$EEE
_TX["ALERT",156,82,2]
Flash 1,"(000,8)(100,1)(300,1)(500,1)(700,1)(900,1)(B00,1)(D00,1)(F00,8)(D00,1)(B00,1)(900,1)(700,1)(500,1)(300,1)(100,1)"
While Joy(1)<16 : Wend
Flash Off
Fade 1,,$0
Wait 15
Ink 0 : Bar 157,82 To 195,89
Double Buffer
'
'* Held & Aliens installieren
'* --------------------------------------------------
On XLEVEL Proc _LEVEL01,_LEVEL02,_LEVEL03,_LEVEL04,_LEVEL05,_LEVEL06
Bob 1,10,100,1
Amal 1,HA$
Amreg(0)=0
Fade 1 To 0 : Wait 15
Amal On
Make Mask
Timer=0
LVOFORBID=Execall(-132)
'
Do
'
'* Wurde Held getroffen
'* ---------------------------------------------------
If Bob Col(1,3 To 15)
Amal Off 1
Amal 1,"A 1,(9,3)(10,3)(11,3)(12,3)(13,3)(14,3)(15,3)(16,3)(17,3)(18,3)"
Amal On 1
If Length(5) : Sam Play 9,2,9000 : End If
Wait 30
Dec XSHIPS : Inc XLOST
If XSHIPS=-1 : Bob 1,0,-200,1 : Exit : End If
If XSHIPS<10 : A$="0" Else A$="" : End If
_TX[A$+Str$(XSHIPS)-" ",48,0,3]
Amal 1,HA$
Amal On 1
End If
'
'
'* Feuertaste drÜcken und Laser abschießen
'* ---------------------------------------------------
If Amreg(0)<>0
Amreg(0)=0
If Chanmv(2)=0
X=X Bob(1) : Y=Y Bob(1)
Bob 2,X+34,Y+8,19
Amal 2,"M"+Str$(320-X)+",0,"+Str$((320-X)/12)+";LY=-200"
Amal On 2
If Length(5) : Sam Play 2,1 : End If
Inc XLASERANZ
End If
End If
'
'
'* Testen ob Treffer und Explosion
'* ---------------------------------------------------
If Chanmv(2)
If Bob Col(2)
For I=4 To 4+XALIENANZ
If Bob Col(I,1 To 2)<>0 and Amreg(I-3)=0
Bob Off 2
Amal Off I
Amal I,XEXPLOSION$(I-3)+XALIEN$(I-3)
Amal On I
If Length(5)
If XLEVEL<6
Sam Play 4,2,8000+Rnd(3000)
Else
Sam Play 4,3,21000
End If
End If
Add XPOINTS,100
C$=" 0000000"
Mid$(C$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
_TX[C$-" ",264,0,3]
Inc XTREFFER
End If
Next I
End If
End If
'
'
If XTREFFER=>XTREFFERMAX Then Exit
'
Loop
'
LVOPERMIT=Execall(-138)
_STATISTIC
'
If XSHIPS>-1 and XLEVEL<6
Goto _GOONULF
Else
Wait 80
End If
'
End Proc
Procedure _STATISTIC
T=Timer
'
'* Alles aus
'* ---------
Wait 30
For I=4 To 15
Amal Off I
Next I
Wait 10
'
If XSHIPS>-1 and XLEVEL<6
For I=4 To 3+XALIENANZ
Amal I,XEXPLOSION$(I-3)
Amal On I
If Length(5) : Sam Play 4,2,8000+Rnd(3000) : Wait 10 : End If
Next I
Wait 50
Amal Off 1
Amal 1,"A0,(1,3)(2,3)(3,3)(4,3)(5,3)(6,3)(7,3);Loop:M"+Str$(370-X Bob(1))+",0,100"
Amal On 1
Wait 130
End If
If XSHIPS>-1 and XLEVEL=6
Amal 4,"A1,(25,1)"
X=X Bob(4) : Y=Y Bob(4) : I=0
Repeat
N=Rnd(5)+5
If Chanan(N)<>-1
Bob N,X-8+Rnd(26),Y-8+Rnd(26),9
Amal N,"A1,(9,3)(10,3)(11,3)(12,3)(13,3)(14,3)(15,3)(16,3)(17,3)(18,3);FR0=0T14;P;NR0;LX=352"
Amal On N
If Length(5) : Sam Play 4,2,9000+Rnd(2000) : Wait 10 : End If
Inc I
End If
Until I=30
Wait 60
End If
'
Screen 2 : Fade 1 : Wait 15 : Bob Off
Screen 1 : Fade 1 : Wait 15
Screen 3 : Fade 1 : Wait 15
Amal Off
'
If Length(3) Then Music 1
'
If XSHIPS>-1 and XLEVEL=6 Then _ALLDONE
'
'* Statistiken
'* -----------
_SCREEN
If XSHIPS=-1
_TX["GAME OVER",140,95,2]
Fade 1,,$F00 : Wait 15
_WAIT
End If
A#=Max(1,XLASERANZ) : A#=((100.0/A#)*XTREFFER)
B#=XLOST : B#=(100.0/(B#+1))
A#=(A#+B#)/2
If XTREFFER=0 Then A#=0.0
XTTALENT#=XTTALENT#+A#
Add XTSHOOTS,XLASERANZ
Add XTHITS,XTREFFER
Add XTLOST,XLOST
Add XTTIME,T
'
If XSHIPS>-1
_TC["LEVEL STATISTIC",118,50,2,1]
_TC["LEVEL.........."+Str$(XLEVEL)-" ",114,70,2,1]
A$=" ....." : Mid$(A$,7-Len(Str$(XLASERANZ)-" "))=Str$(XLASERANZ)-" "
_TC["SHOOTS....."+A$-" ",114,80,2,1]
A$=" ....." : Mid$(A$,7-Len(Str$(XTREFFER)-" "))=Str$(XTREFFER)-" "
_TC["HITS......."+A$-" ",114,90,2,1]
If XLOST<10 : A$="." Else A$="" : End If
_TC["LOST.........."+A$+Str$(XLOST)-" ",114,100,2,1]
N=T/50 : H=N/3600 : M=N/60-H*60 : S=N-(H*3600+M*60)
M$=" 00" : Right$(M$,Len(Str$(M))-1)=Str$(M)-" "
S$=" 00" : Right$(S$,Len(Str$(S))-1)=Str$(S)-" "
_TC["TIME......."+M$-" "+":"+S$-" ",114,110,2,1]
A$=""
If A#<100 : A$="." : End If
If A#<10 : A$=".." : End If
_TC["TALENT..."+A$+Str$(A#)-" "+"%",114,120,2,1]
If A#>39.99 : Inc XSHIPS : End If
XPOINTS=XPOINTS+A#*100
A$=" ......." : Mid$(A$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
_TC["POINTS..."+A$-" ",114,130,2,0]
_WAIT
If XLEVEL<6 : _MUSICOFF : End If
End If
'
If XLEVEL=6 or XSHIPS=-1
'
_TC["TOTAL STATISTIC",118,50,2,1]
_TC["LEVEL.........."+Str$(XLEVEL)-" ",114,70,2,1]
A$=" ....." : Mid$(A$,7-Len(Str$(XTSHOOTS)-" "))=Str$(XTSHOOTS)-" "
_TC["SHOOTS....."+A$-" ",114,80,2,1]
A$=" ....." : Mid$(A$,7-Len(Str$(XTHITS)-" "))=Str$(XTHITS)-" "
_TC["HITS......."+A$-" ",114,90,2,1]
If XTLOST<10 : A$="." Else A$="" : End If
_TC["LOST.........."+A$+Str$(XTLOST)-" ",114,100,2,1]
N=XTTIME/50 : H=N/3600 : M=N/60-H*60 : S=N-(H*3600+M*60)
M$=" 00" : Right$(M$,Len(Str$(M))-1)=Str$(M)-" "
S$=" 00" : Right$(S$,Len(Str$(S))-1)=Str$(S)-" "
_TC["TIME......."+M$-" "+":"+S$-" ",114,110,2,1]
A#=XTTALENT#/6
A$=""
If A#<100 : A$="." : End If
If A#<10 : A$=".." : End If
_TC["TALENT..."+A$+Str$(A#)-" "+"%",114,120,2,1]
XPOINTS=XPOINTS+A#*100
A$=" ......." : Mid$(A$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
_TC["POINTS..."+A$-" ",114,130,2,0]
_WAIT
'
_HIGHSCORE
'
End If
'
End Proc
Procedure _MUSICOFF
If Length(3)
For I=63 To 0 Step -1
Mvolume I : Wait Vbl
Next I
Music Off
Mvolume 63
End If
End Proc
Procedure _WAIT
While Joy(1)>15 : Wend
While Joy(1)<16 : Wend
Flash Off
Fade 1
Wait 15
Cls 0
End Proc
Procedure _HIGHSCORE
If XPOINTS>XHIGH(9)
_TC["DAS WAR EIN HARTES STUECK ARBEIT ALTER!",20,10,2,1]
_TC["ZUR BELOHNUNG GIBT ES ZWAR KEIN BIER",20,20,2,1]
_TC["ABER IMMERHIN KANNST DU DICH IN DER",20,30,2,1]
_TC["EWIGEN BESTENLISTE EINTRAGEN!",20,40,2,1]
_TX["#",20,60,2]
'
Repeat
N=0
While N=0 : N=Asc(Upper$(Inkey$)) : Wend
If N>31 and N<>35 and Len(N$)<16
N$=N$+Chr$(N)
End If
If N=8 and Len(N$)>0
N$=Left$(N$,Len(N$)-1)
End If
_TX[N$+"# ",20,60,2]
Clear Key
Until N=13
'
XHIGH(9)=XPOINTS
XHIGH$(9)=N$
XHIGHOK=True
'
For I=0 To 8
For I2=I+1 To 9
If XHIGH(I2)>XHIGH(I)
Swap XHIGH(I2),XHIGH(I)
Swap XHIGH$(I2),XHIGH$(I)
End If
Next I2
Next I
'
Flash Off : Fade 1 : Wait 15 : Cls 0
End If
'
_TC["HIGHSCORE",140,50,2,1]
For I=1 To 10
If I<10 Then A$="0" Else A$=""
B$=A$+Str$(I)-" "+". "+XHIGH$(I-1)+String$(".",16-Len(XHIGH$(I-1)))+" "+String$("0",7-Len(Str$(XHIGH(I-1))-" "))+Str$(XHIGH(I-1))-" "
If I=10 : C=0 Else C=1 : End If
_TC[B$,64,I*10+65,2,C]
Next I
_WAIT
End Proc
Procedure _ALLDONE
Screen Open 2,320,256,4,Lowres : Cls 0
'
_TC["NA ALSO!",0,60,2,1]
_TC["DEN ALIENS IST DER DURST",0,70,2,1]
_TC["AUF BIER NUN ENDLICH VERGANGEN.",0,80,2,1]
_TC["UND EINES IST IHNEN EINE LEHRE...",0,100,2,1]
_TC["...WENN ES UM SUEFFIGEN MEET GEHT",0,120,2,1]
_TC["DANN HOERT BEI DIR DER SPASS AUF.",0,130,2,1]
_TC["ACH JA...HERZLICHEN GLUECKWUNSCH!",0,160,2,0]
_WAIT
End Proc
Procedure _SCREEN
Screen Open 2,352,178,16,Lowres
Screen Hide
Flash Off
Curs Off
For I=0 To 15 : Colour I,$0 : Next I
Cls 0
Screen Display 2,,58,,
Screen Show
End Proc
Procedure _TX[N$,X,Y,S]
A$="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*:=!$%&/()?<>.,_©# "
L=Len(N$)-1
'
For I=0 To L
B$=Mid$(N$,I+1,1)
N=Instr(A$,B$)
If N>0
If N<40 : A=240 Else A=248 : Add N,-39 : End If
Screen Copy 0,(N-1)*8-1,A,N*8-1,A+8 To S,X+I*8,Y
End If
Next I
End Proc
Procedure _TC[N$,X,Y,S,C]
Colour 1,$F0 : Flash 2,"(0F0,15)(000,15)"
'
A$="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*:=!$%&/()?<>.,_©# "
L=Len(N$)-1
'
For I=0 To L
B$=Mid$(N$,I+1,1)
N=Instr(A$,B$)
If N>0
If N<40 : A=240 Else A=248 : Add N,-39 : End If
Screen Copy 0,129,249,135,256 To S,X+(I+1)*8+2,Y
Screen Copy 0,(N-1)*8-1,A,N*8-1,A+8 To S,X+I*8,Y
If Joy(1)<16 : Wait 4 : End If
End If
Next I
If C Then Screen S : Ink 0 : Bar X+8+L*8,Y To X+L*8+18,Y+8
End Proc
Procedure _GETHERO
'* Heldanimationen
'* ---------------
For I=0 To 17
Get Bob 0,1+I,1+I*17,1 To I*17+17,17
Next I
'
'* Laserschuß & Miene
'* ------------------
Get Bob 0,19,307,0 To 320,1 : Hot Spot 19,$21
'
'* Kanäle fÜr animationen festlegen
'* --------------------------------
Channel 0 To Screen Offset 1
For I=1 To 15
Channel I To Bob I
Next I
'
'* Steuerung des Helden
'* --------------------
HA$=HA$+"JS;B:LR0=J1;IX<10JV;IX>310JQ;IY>160JN;IY<5JK;"
HA$=HA$+"C:IR0&16JF;M:IR0&1JU;IR0&2JD;IR0&4JL;IR0&8JR;JB;"
HA$=HA$+"U:A0,(2,1);M0,-4,1;JS;D:A0,(8,1);M0,4,1;JS;R:M4,0,1;JB;"
HA$=HA$+"L:M-4,0,1;JB;S:A1,(1,10);JB;F:LRA=1;JM;V:LX=10;JC;"
HA$=HA$+"Q:LX=310;JC;N:LY=160;JC;K:LY=5;JC;"
'
'**** Registerwertigkeiten ****
'Amreg(0)=Feuertaste->RA
End Proc
Procedure _LEVEL01
XALIENANZ=5
'
For I=0 To 9
Get Bob 0,21+I,1+I*17,18 To I*17+17,34
Next I
'
For I=1 To XALIENANZ
Read N
XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(25,3)(26,3)(27,3)(28,3)(29,3)(30,3);FR1=0T8;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
XALIEN$(I)="A 0,(21,3)(22,3)(23,3)(24,3);Loop: M -372,0,"+Str$(N)+";L X=352;L Y=Z(95)+Z(65);J Loop"
Bob 3+I,352,Rnd(160),21
Amal 3+I,XALIEN$(I)
Next I
'
Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
'
Data 70,90,110,120,130
End Proc
Procedure _LEVEL02
XALIENANZ=6
'
For I=0 To 13
Get Bob 0,21+I,1+I*15,35 To I*15+15,49
Next I
'
For I=1 To XALIENANZ
Read N : X=-Rnd(150)-70
XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(30,6)(31,3)(32,3)(33,3)(34,3);FR1=0T8;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
XALIEN$(I)="A 0,(21,3)(22,3)(23,3)(24,3)(25,3)(26,10)(27,3)(28,3)(29,3);"
XALIEN$(I)=XALIEN$(I)+"Loop:M"+Str$(X)+",0,"+Str$(N)+";FR0=0T20;P;NR0;"
XALIEN$(I)=XALIEN$(I)+"M"+Str$(-352+Abs(X))+",0,"+Str$(N/2)
XALIEN$(I)=XALIEN$(I)+";LX=352;LY=Z(85)+Z(65)+Z(10);JLoop"
Bob 3+I,352,Rnd(160),21
Amal 3+I,XALIEN$(I)
Next I
'
Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
'
Data 40,50,60,70,80,90
End Proc
Procedure _LEVEL03
XALIENANZ=7
'
For I=0 To 13
Get Bob 0,21+I,1+I*17,67 To I*17+17,83
Next I
'
Randomize Timer
For I=1 To XALIENANZ
Read N
XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(29,3)(30,3)(31,3)(32,3)(33,3)(34,3);FR1=0T8;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
XALIEN$(I)="A 0,(21,4)(22,4)(23,4)(24,4)(25,4)(26,4)(27,4)(28,4);Loop: "
I3=Rnd(1)
For I2=1 To 2
Add I3,1,0 To 1
If I3=1 Then A$=Str$(-Rnd(10)-20) Else A$=Str$(Rnd(10)+20)
XALIEN$(I)=XALIEN$(I)+"M-185,"+A$+","+Str$(N)+";"
Next I2
XALIEN$(I)=XALIEN$(I)+"L X=352;L Y=Z(55)+Z(35)+Z(10)+30;J Loop"
Bob 3+I,352,Rnd(100)+30,21
Amal 3+I,XALIEN$(I)
Next I
'
Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
'
Data 34,40,50,60,70,75,90,40
End Proc
Procedure _LEVEL04
XALIENANZ=8
'
For I=0 To 9
Get Bob 0,21+I,1+I*17,84 To I*17+17,100
Next I
'
For I=1 To XALIENANZ
Read N
XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(25,2)(26,2)(27,2)(28,2)(29,2)(30,2);FR1=0T7;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
XALIEN$(I)="A 0,(21,4)(22,4)(23,4)(24,4);Loop: "
XALIEN$(I)=XALIEN$(I)+"FR1=0T1;M-102,34,"+Str$(N)+";"
XALIEN$(I)=XALIEN$(I)+"M0,-34,10;"
XALIEN$(I)=XALIEN$(I)+"M-102,0,"+Str$(N)+";NR1"
XALIEN$(I)=XALIEN$(I)+"L X=352;L Y=Z(53)+Z(40)+Z(23)+10;J Loop"
Bob 3+I,352,Rnd(100)+30,21
Amal 3+I,XALIEN$(I)
Next I
'
Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
'
Data 24,28,39,30,35,20,40,22
End Proc
Procedure _LEVEL05
XALIENANZ=9
'
For I=0 To 13
Get Bob 0,21+I,1+I*17,50 To I*17+17,66
Next I
'
For I=1 To XALIENANZ
Read N : X=-Rnd(150)-70
XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(25,8)(26,2)(27,2)(28,2)(29,2)(30,2)(31,2)(32,2)(33,2)(34,2);FR1=0T13;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
XALIEN$(I)="A 0,(21,3)(22,3)(23,3)(24,3);"
XALIEN$(I)=XALIEN$(I)+"Loop:M"+Str$(X)+",0,"+Str$(N)+";FR0=0T20;P;NR0;"
XALIEN$(I)=XALIEN$(I)+"M"+Str$(-400+Abs(X))+",0,"+Str$(N/2)
XALIEN$(I)=XALIEN$(I)+";LY=Z(85)+Z(65)+Z(10);M"+Str$(Abs(X)+130)+",0,"+Str$(N)
XALIEN$(I)=XALIEN$(I)+";M"+Str$(X-130)-" "+",0,"+Str$(N)
XALIEN$(I)=XALIEN$(I)+";LX=352;LY=Z(85)+Z(65)+Z(10);JLoop"
Bob 3+I,352,Rnd(160),21
Amal 3+I,XALIEN$(I)
Next I
'
Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
'
Data 40,50,60,70,80,90,95,100,75
End Proc
Procedure _LEVEL06
XALIENANZ=0
'
For I=0 To 5
Get Bob 0,21+I,1+I*26,101 To I*26+26,129
Next I
'
XEXPLOSION$(1)="LRB=1;A1,(26,1);P;P;P;P;P;P;A1,(25,1);LRB=0;FR0=0T30;LX=X+10;IX>290JS;NR0;"
XALIEN$(1)="S:LX=300;A0,(21,9)(22,3)(23,3)(24,3)(25,9)(24,3)(23,3)(22,3);"
XALIEN$(1)=XALIEN$(1)+"LRC=Z(1);IRC=1JD;U:FR0=0T50;LY=Y+3;IY>150JD;LRC=Z(1000);IRC=1000JA;NR0;"
XALIEN$(1)=XALIEN$(1)+"D:FR0=0T50;LY=Y-3;IY<0JU;LRC=Z(1000);IRC=1000JB;NR0;JU"
XALIEN$(1)=XALIEN$(1)+"A:M-300,0,15;M300,0,15;JG"
XALIEN$(1)=XALIEN$(1)+"B:M-300,0,15;M300,0,15;G:LRC=Z(1);IRC=0JUJD;"
Bob 4,300,100,21
Amal 4,XALIEN$(1)
'
Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
'
End Proc